iT邦幫忙

2023 iThome 鐵人賽

DAY 29
0
SideProject30

HOW TO GO系列 第 29

29. Build (2)

  • 分享至 

  • xImage
  •  

容器化技術,我認為已經算是必備的知識,所以這邊也稍微簡單介紹一下。

可能有人會想問,如果像是這次簡單的專案也需要使用嗎?我的回答會是不用,但是換成如網頁應用程式較大型專案時,或者當需要導 入CI/CD 時,也許就有機會使用到。

因此,我認為也不要侷限於專案的大小而不去接觸,而是趁這個機會可以練習及實作,對自身技能的提升會有幫助。

What is Docker?

Docker 是一個開源的平台,用於開發、部署和執行應用程式的容器化技術。容器化是一種虛擬化方法,它允許在容器中封裝應用程式及其相依性,以確保應用程式在不同環境中一致運行,無論是在開發、測試還是正式環境。

docker build

通常會撰寫成 Dockerfile,將如何建立的過程以檔案方式紀錄,好處是可以做好版本控制,因此建議都以此方式進行。

來源:Build your Go image

# Build the application from source
FROM golang:1.19 AS build-stage

WORKDIR /app

COPY go.mod go.sum ./
RUN go mod download

COPY *.go ./

RUN CGO_ENABLED=0 GOOS=linux go build -o /main

# Run the tests in the container
FROM build-stage AS run-test-stage
RUN go test -v ./...

# Deploy the application binary into a lean image
FROM gcr.io/distroless/base-debian11 AS build-release-stage

WORKDIR /

COPY --from=build-stage /main

# EXPOSE 8080

USER nonroot:nonroot

ENTRYPOINT ["/main"]

上一篇
28. Build (1)
下一篇
30. 尾聲?
系列文
HOW TO GO30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言